#include "mprpccontroller.h"

namespace rpc {

MprpcController::MprpcController() 
: m_failed(false), 
  m_error_text("") 
{}

void MprpcController::Reset() {
    m_failed = false;
    m_error_text = "";
}

bool MprpcController::Failed() const {
    return m_failed;
}

std::string MprpcController::ErrorText() const {
    return m_error_text;
}

void MprpcController::SetFailed(const std::string& reason) {
    m_failed = true;
    m_error_text = reason;  // 存储失败原因
}

// 以下为可选实现（简化版RPC框架可暂不实现复杂逻辑，优先保证让节点间能通过 RPC 正常通信（如 Raft 节点的选举请求、日志复制））
void MprpcController::StartCancel() {
    // 暂不实现取消功能
}

bool MprpcController::IsCanceled() const {
    return false;  // 始终返回未取消
}

void MprpcController::NotifyOnCancel(google::protobuf::Closure* callback) {
    // 暂不注册取消回调
    (void)callback;  // 避免未使用参数警告
}

}  // namespace rpc
